package com.gitee.c0dehvb.reactive.sample.model;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
import org.springframework.data.domain.Persistable;
import org.springframework.data.relational.core.mapping.Table;

import java.util.Date;

/**
 * @author LiYilin
 * @since 2022/5/27 12:46 AM
 **/
@Data
@Table("medium_comment")
public class MediumCommentPO implements Persistable<Long> {
    /**
     *  主键id,所属表字段为medium_comment.id
     */
    @Id
    private Long id;

    /**
     *  店铺id,所属表字段为medium_comment.store_id
     */
    private Long storeId;

    /**
     *  粉丝页id,所属表字段为medium_comment.page_id
     */
    private String pageId;

    /**
     *  媒体销售id,所属表字段为medium_comment.medium_sales_id
     */
    private Long mediumSalesId;

    /**
     *  渠道类型，1:FACEBOOK, 2: LINE, 3:IG,所属表字段为medium_comment.channel_type
     */
    private Byte channelType;

    /**
     *  帖子id,所属表字段为medium_comment.post_id
     */
    private String postId;

    /**
     *  第三方用户id,所属表字段为medium_comment.third_user_id
     */
    private String thirdUserId;

    /**
     *  第三方用户类型, 1:PSID、2:ASID、3:IGSID、4:IGID,所属表字段为medium_comment.third_user_type
     */
    private Byte thirdUserType;

    /**
     *  留言类型，1:MERCHANT, 2:CUSTOMER,所属表字段为medium_comment.comment_type
     */
    private Byte commentType;

    /**
     *  第三方留言id,所属表字段为medium_comment.comment_id
     */
    private String commentId;

    /**
     *  第三方父留言id,所属表字段为medium_comment.parent_comment_id
     */
    private String parentCommentId;

    /**
     *  是否已回复, 否 0， 是 1,所属表字段为medium_comment.has_reply
     */
    private Boolean hasReply;

    /**
     *  命中关键字，0: 一般留言，1：关键字留言
     */
    private Byte hitKeyword;

    /**
     *  创建时间,所属表字段为medium_comment.create_time
     */
    private Date createTime;

    /**
     *  修改时间,所属表字段为medium_comment.update_time
     */
    private Date updateTime;

    /**
     *  留言内容,所属表字段为medium_comment.content
     */
    private String content;

    @Transient
    private boolean isNew = true;

    @Override
    public boolean isNew() {
        return isNew;
    }

    public void markNotNew() {
        this.isNew = false;
    }
}
